package 集合进阶.综合练习;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class 自动点名3 {
    public static void main(String[] args) {
        /* 班级里有5个学生
        要求：
        被点到的学生不会再被点到。
        但是如果班级中所有的学生都点完了，需要重新开启第二轮点名。*/


        //1.定义集合
        ArrayList<String> list1 = new ArrayList<>();
        //2.添加数据
        Collections.addAll(list1, "范闲", "范建", "范统", "杜子腾", "杜琦燕", "宋合泛", "侯笼藤", "朱益群", "朱穆朗玛峰", "袁明媛");

        //3.创建一个集合存储以及被点名的学生
        ArrayList<String> newList=new ArrayList<>();

        //4.点名
        //定义一个计数器记录点了几轮名
        int count =1;
        while (count<=2) {
            //isEmpty判断是否为空,为空的时候为ture
            while (!list1.isEmpty()) {
                name(list1, newList);
            }
            //把被点到过的学生名字添加到原来集合中
            list1.addAll(newList);
            //清空记录被点过名的集合
            newList.clear();
            count++;
        }
    }
        //定义一个点名的方法
    private static void name(ArrayList<String> list1, ArrayList<String> newList) {
        Random ra=new Random();
        int index=ra.nextInt(list1.size());
        //打印被点到名的学生
        System.out.println(list1.get(index));
        //将被点名的学生添加到newlist中
        newList.add(list1.get(index));
        //再list1中移除被点到名的学生
        list1.remove(index);
    }
}
